<template>
	<view class="flex-column">
		<!-- #ifndef MP-TOUTIAO -->
		<uni-nav-bar v-if="!isWin" height="80rpx" :statusBar='true' left-icon='left' @clickLeft="goBack"
			title="编辑主页"></uni-nav-bar>
		<!-- #endif -->
		<view class="flex-column center margin-vertical-10">
			<u-avatar size="70" :src="transPic(user.avatar)"></u-avatar>
			<text class="blue margin-vertical-10" @click="changeAvatar">更换头像</text>
		</view>
		<view class="flex-column row-gap-10 margin-vertical-10">
			<text>昵称</text>
			<u--input placeholder="请输入昵称" border="bottom" v-model="user.username"></u--input>
		</view>
		<view class="flex-column row-gap-10 margin-vertical-10">
			<text>个性签名</text>
			<u--input placeholder="请输入个性签名" border="bottom" v-model="user.Signature"></u--input>
		</view>
		<view class="flex-column row-gap-10 margin-vertical-10">
			<text>ins账号</text>
			<u--input placeholder="请输入ins账号" border="bottom" v-model="user.insAccount"></u--input>
		</view>
		<view class="flex-column row-gap-10 margin-vertical-10">
			<text>ins密码</text>
			<u--input placeholder="请输入ins密码" border="bottom" type="password" v-model="user.insPassword"></u--input>
		</view>
		<view class="flex center margin-vertical-10">
			<u-button type="primary" @click="confim" text="确定"></u-button>
		</view>
		<text style="font-weight: 300;font-size: 0.8rem;line-height: 1.4rem;">
			特别提示:
			1: 如果没有填写自己的ins账号和密码那么在评论和私信的时候会默认使用默认账号
			2: 如果担心账号问题那么就直接使用默认账号，但是如果多人频繁使用默认账号会出现发送失败的情况(触发ins封禁)
			3: 发送评论和私信不能保证立即发送成功,第一是因为如果同一时间多人评论和私信那么会隔一段时间发送一批信息,造成这个的原因是因为默认账号只有一个,短时间大量请求会导致ins的封禁
			4: 如果是因为过度的使用本小程序评论或者私信导致自身ins账号(不包括默认账号)封禁的概不负责,因为本质上发送评论和私信都是你在使用自身账号在操作,小程序只是帮你实现某些特殊操作而已
			5: 如果小程序或者app在你手机上出现问题无法使用可以添加微信:limbo_1998,或者在个人界面提交反馈
		</text>
	</view>
</template>

<script>
import Config from "@/common/config.js"
import { getMedias, uploadFile, updateUserInfo } from "@/api/app/api.js"
export default {
	data() {
		return {
			src: "",
			isWin: false,
			user: {},
		}
	},
	methods: {
		goBack() {
			console.log(this.user)
			this.$store.commit('setUser', this.user);
			wx.navigateBack();
		},
		changeAvatar() {
			uni.chooseImage({
				count: 1,
				sourceType: ['album'],
				success: (files) => {
					console.log(files);
					let src = files.tempFilePaths[0];
					let avatar = 'user_avatar/' + this.user.openid + (+new Date()) + '.png';
					uni.showLoading({
						title: "正在上传头像中"
					})
					uni.uploadFile({
						url: 'https://www.roseannepark.love:8000/upload',
						filePath: src,
						name: 'file',
						formData: {
							filename: avatar
						},
						success: async (files) => {
							console.log(files.data)
							updateUserInfo({
								openid: this.user.openid,
								avatar: avatar
							}).then(res => {
								this.user.avatar = avatar;
								uni.hideLoading()
								uni.showToast({
									title: '更新成功',
									icon: 'success',
									duration: 1000
								})
							}).catch(err => {
								uni.hideLoading()
								uni.showToast({
									title: '更新失败',
									icon: 'error',
									duration: 1000
								})
							})
						}
					})
				},
				fail: (err) => {
					console.log('err:', err)
				}
			})
		},
		transPic(val) {
			if (typeof val === 'string' && val.includes('cloud://')) {
				return val;
			}
			if (val === undefined) {
				val = Config.cloud_url + 'HeadPortrait.jpg'
			}
			return Config.cloud_url + val;
		},
		confim() {
			wx.showLoading({
				title: '正在更新信息'
			});
			updateUserInfo(this.user).then(res => {
				wx.hideLoading()
				wx.showToast({
					title: "更新成功",
					icon: "success",
					duration: 500
				})
			}).cathc(err => {
				wx.hideLoading()
				wx.showToast({
					title: '更新失败',
					icon: 'error',
					duration: 500,
				})
				this.goBack();
			})
		},
	},
	onLoad() {
		let infos = uni.getSystemInfoSync();
		console.log("infos", infos);
		this.isWin = infos.platform === "windows";
		let channel = this.getOpenerEventChannel();
		channel.on('assectData', (res) => {
			this.user = Object.assign({}, this.user, res)
		});
	},
}
</script>

<style></style>